home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / CMICCProfile.idl < prev    next >
Text File  |  1996-05-01  |  9KB  |  235 lines

  1. /*
  2.      File:        CMICCProfile.idl
  3.  
  4.      Contains:    Definitions for ColorSync 2.0 profile
  5.  
  6.      Version:    Technology:    ColorSync 2.0
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __CMICCPROFILE_IDL__
  19. #define __CMICCPROFILE_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __TYPES_IDL__
  25. #include <Types.idl>
  26. #endif
  27.  
  28. #ifdef __SOMIDL__
  29.  
  30. /* Current CMProfile.header.profileVersion Major: 2, Minor: 0, Stage: Developement (x20), Prerelease:0x01 */
  31. /* Current Major version number */
  32. /* magic cookie number for anonymous file ID */
  33. /* ColorSync profile version 1.0 */
  34. /************************************************************************/
  35. /*************** ColorSync 2.0 profile specification ********************/
  36. /************************************************************************/
  37. /* profile flags element values */
  38. /* data type element values */
  39. /* rendering intent element values  */
  40. /* speed and quality flag options */
  41. /* device/media attributes element values  */
  42. /* screen encodings  */
  43. /* 2.0 tag type information */
  44. /* public tags */
  45. /* custom tags */
  46. /* technology tag descriptions */
  47. /* type signatures */
  48. /* Measurement type encodings */
  49. /* Measurement Flare */
  50. /* Measurement Geometry    */
  51. /* Standard Observer    */
  52. /* Standard Illuminant */
  53. /* Spot Function Value */
  54. /* Color Space Signatures */
  55. /* profileClass enumerations */
  56. /* platform enumerations */
  57. /* ColorSync 1.0 elements */
  58. /* General element data types */
  59. typedef SOMLargeStruct            CMDateTime;                    /* Derived from a struct of 12 bytes in size */
  60.  
  61. typedef SOMLargeStruct            CMFixedXYZColor;            /* Derived from a struct of 12 bytes in size */
  62.  
  63. typedef unsigned short            CMXYZComponent;
  64.  
  65. typedef SOMLargeStruct            CMXYZColor;                    /* Derived from a struct of 6 bytes in size */
  66.  
  67. typedef SOMLargeStruct            CM2Header;                    /* Derived from a struct of 128 bytes in size */
  68.  
  69. typedef SOMLargeStruct            CMTagRecord;                /* Derived from a struct of 12 bytes in size */
  70.  
  71. typedef SOMLargeStruct            CMTagElemTable;                /* Derived from a struct of 16 bytes in size */
  72.  
  73. /* External 0x02002001 CMProfile */
  74. typedef SOMLargeStruct            CM2Profile;                    /* Derived from a struct of 145 bytes in size */
  75.  
  76. typedef OpaquePtr                CM2ProfilePtr;                /* Substituted OpaquePtr for ``CM2Profile*'' */
  77.  
  78. typedef OpaquePtr                CM2ProfileHandle;            /* Substituted OpaquePtr for ``CM2ProfilePtr*'' */
  79.  
  80. /* Tag Type Definitions */
  81. typedef SOMLargeStruct            CMCurveType;                /* Derived from a struct of 14 bytes in size */
  82.  
  83. typedef SOMLargeStruct            CMDataType;                    /* Derived from a struct of 13 bytes in size */
  84.  
  85. typedef SOMLargeStruct            CMDateTimeType;                /* Derived from a struct of 20 bytes in size */
  86.  
  87. typedef SOMLargeStruct            CMLut16Type;                /* Derived from a struct of 58 bytes in size */
  88.  
  89. typedef SOMLargeStruct            CMLut8Type;                    /* Derived from a struct of 562 bytes in size */
  90.  
  91. typedef SOMLargeStruct            CMMeasurementType;            /* Derived from a struct of 36 bytes in size */
  92.  
  93. typedef SOMLargeStruct            CMNamedColorType;            /* Derived from a struct of 19 bytes in size */
  94.  
  95. /*
  96.     A variable size array of structs appears as the last block of data
  97.     in the above struct, CMNamedColorType.  The data structure
  98.     is as follows: (example in C)
  99.     
  100.      struct {                                             
  101.             unsigned char    rootName[1];                 * Variable size, max = 32 
  102.             unsigned char    colorCoords[1];                 * Variable size  
  103.      } colorName[1];                                     * Variable size  
  104. */
  105. typedef SOMLargeStruct            CMNamedColor2Type;            /* Derived from a struct of 85 bytes in size */
  106.  
  107. /*
  108.     A variable size array of structs appears as the last block of data
  109.     in the above struct, CMNamedColor2Type.  The data structure
  110.     is as follows: (example in C)
  111.     
  112.      struct {                                             
  113.             unsigned char    rootName[1];                 * 32 byte field.  7 bit ASCII null terminated
  114.             unsigned char    PCSColorCoords[1];             * Variable size  
  115.             unsigned char    DeviceColorCoords[1];         * Variable size  
  116.      } colorName2[1];                                     * Variable size  
  117. */
  118. typedef SOMLargeStruct            CMTextDescriptionType;        /* Derived from a struct of 29 bytes in size */
  119.  
  120. typedef SOMLargeStruct            CMTextType;                    /* Derived from a struct of 9 bytes in size */
  121.  
  122. typedef SOMLargeStruct            CMScreeningType;            /* Derived from a struct of 17 bytes in size */
  123.  
  124. /*
  125.     A variable size array of structs appears as the last block of data
  126.     in the above struct, CMScreeningType.  The data structure
  127.     is as follows: (example in C)
  128.     
  129.     struct {
  130.         Fixed            frequency;
  131.         Fixed            angle;
  132.         unsigned long    sportFunction;
  133.      }    channelScreening[1];                             * Variable size 
  134. */
  135. typedef SOMLargeStruct            CMSignatureType;            /* Derived from a struct of 12 bytes in size */
  136.  
  137. typedef SOMLargeStruct            CMS15Fixed16ArrayType;        /* Derived from a struct of 12 bytes in size */
  138.  
  139. typedef SOMLargeStruct            CMU16Fixed16ArrayType;        /* Derived from a struct of 12 bytes in size */
  140.  
  141. typedef SOMLargeStruct            CMUInt16ArrayType;            /* Derived from a struct of 10 bytes in size */
  142.  
  143. typedef SOMLargeStruct            CMUInt32ArrayType;            /* Derived from a struct of 12 bytes in size */
  144.  
  145. typedef SOMLargeStruct            CMUInt64ArrayType;            /* Derived from a struct of 12 bytes in size */
  146.  
  147. typedef SOMLargeStruct            CMUInt8ArrayType;            /* Derived from a struct of 9 bytes in size */
  148.  
  149. typedef SOMLargeStruct            CMViewingConditionsType;    /* Derived from a struct of 36 bytes in size */
  150.  
  151. typedef SOMLargeStruct            CMXYZType;                    /* Derived from a struct of 20 bytes in size */
  152.  
  153. /* Profile sequence description type */
  154. typedef SOMLargeStruct            CMProfileSequenceDescType;    /* Derived from a struct of 13 bytes in size */
  155.  
  156. /*
  157.     A variable size array of structs appears as the last block of data
  158.     in the above struct, CMProfileSequenceDescType.  The data structure
  159.     is as follows: (example in C)
  160.     
  161.      struct {                                             
  162.             OSType            deviceMfg;                     * Device Manufacturer 
  163.             OSType            deviceModel;                 * Decvice Model 
  164.             unsigned long    attributes[2];                 * Device attributes 
  165.             OSType            technology;                     * Technology signature 
  166.             unsigned long    mfgDescASCIICount;             * the count of "bytes" 
  167.             unsigned char    mfgDescASCIIName[2];         * Variable size 
  168.             unsigned long    mfgDescUniCodeCode;             
  169.             unsigned long    mfgDescUniCodeCount;         * the count of characters, each character has two bytes 
  170.             unsigned char    mfgDescUniCodeName[2];         * Variable size 
  171.             unsigned long    mfgDescScriptCodeCode;         
  172.             unsigned long    mfgDescScriptCodeCount;         * the count of "bytes" 
  173.             unsigned char    mfgDescScriptCodeName[2];     * Variable size 
  174.             unsigned long    modelDescASCIICount;         * the count of "bytes" 
  175.             unsigned char    modelDescASCIIName[2];         * Variable size 
  176.             unsigned long    modelDescUniCodeCode;         
  177.             unsigned long    modelDescUniCodeCount;         * the count of characters, each character has two bytes 
  178.             unsigned char    modelDescUniCodeName[2];     * Variable size 
  179.             short            modelDescScriptCodeCode;     
  180.             unsigned char    modelDescScriptCodeCount;     * the count of "bytes" 
  181.             SInt8            filler;                         * For proper alignment across languages 
  182.             unsigned char    modelDescScriptCodeName[2];     * Variable size 
  183.      }    profileDescription[1];                         
  184. */
  185. /* Under color removal, black generation type */
  186. typedef SOMLargeStruct            CMUcrBgType;                /* Derived from a struct of 21 bytes in size */
  187.  
  188. typedef SOMLargeStruct            CMIntentCRDVMSize;            /* Derived from a struct of 8 bytes in size */
  189.  
  190. typedef SOMLargeStruct            CMPS2CRDVMSizeType;            /* Derived from a struct of 20 bytes in size */
  191.  
  192. /************************************************************************/
  193. /*************** ColorSync 1.0 profile specification ********************/
  194. /************************************************************************/
  195. /* Device types */
  196. typedef SOMLargeStruct            CMIString;                    /* Derived from a struct of 66 bytes in size */
  197.  
  198. /* Profile options */
  199. /* Profile flags */
  200. typedef long                    CMMatchOption;
  201.  
  202. typedef long                    CMMatchFlag;
  203.  
  204. typedef SOMLargeStruct            CMHeader;                    /* Derived from a struct of 64 bytes in size */
  205.  
  206. typedef SOMLargeStruct            CMProfileChromaticities;    /* Derived from a struct of 36 bytes in size */
  207.  
  208. typedef SOMLargeStruct            CMProfileResponse;            /* Derived from a struct of 20 bytes in size */
  209.  
  210. typedef SOMLargeStruct            CMProfile;                    /* Derived from a struct of 187 bytes in size */
  211.  
  212. typedef OpaquePtr                CMProfilePtr;                /* Substituted OpaquePtr for ``CMProfile*'' */
  213.  
  214. typedef OpaquePtr                CMProfileHandle;            /* Substituted OpaquePtr for ``CMProfilePtr*'' */
  215.  
  216. #if OLDROUTINENAMES
  217. typedef unsigned short            XYZComponent;
  218.  
  219. typedef CMXYZColor                XYZColor;
  220.  
  221. typedef unsigned short            CMResponseData;
  222.  
  223. typedef CMIString                IString;
  224.  
  225. typedef long                    CMResponseColor;
  226.  
  227. typedef CMResponseColor            responseColor;
  228.  
  229. #endif
  230.  
  231. #endif /* __SOMIDL__ */
  232.  
  233. #endif /* __CMICCPROFILE_IDL__ */
  234.  
  235.